Universal data aggregation

ABSTRACT

A system for aggregating and managing PIM data from multiple sources is provided. By aggregating various sources of data, the present system allow for the bridging of networked communities and organizations. Limitations of data aggregation as a result of proprietary and/or protocol concerns are overcome through the development of trusted relationships amongst users of the data aggregation and management system.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No. 14/623,522, filed on Feb. 17, 2015, being issued as U.S. Pat. No. 10,474,660 on Nov. 12, 2019, which is a continuation of U.S. patent application Ser. No. 11/925,988, which was filed on Oct. 28, 2007 and was co-pending on the filing date of U.S. patent application Ser. No. 14/623,522. The application Ser. No. 11/925,988 is a continuation of U.S. patent application Ser. No. 11/229,340, filed on Sep. 16, 2005, and issued as U.S. Pat. No. 7,917,468 on Mar. 29, 2011. The application Ser. No. 11/229,340 is a continuation-in-part of U.S. patent application Ser. No. 11/217,203, filed on Aug. 31, 2005, and issued as U.S. Pat. No. 7,853,563 on Dec. 14, 2010. The application Ser. No. 11/217,203 claims the benefit of priority of U.S. provisional patent application No. 60/704,781, filed on Aug. 1, 2005. This application therefore claims the benefit of priority by chain of co-pendency to U.S. provisional patent application No. 60/704,781, filed on Aug. 1, 2005. All aforementioned applications are incorporated herein by reference.

TECHNICAL FIELD

The present invention relates to control and utilization of personal information management (PIM) data such as calendar and contact information in the context of personal and professional activities. More specifically, the present invention relates to control and utilization of PIM data in the context of mobile devices such as smart phones and PDAs.

DESCRIPTION OF RELATED ART

Presently available groupware applications and other related collaboration products that facilitate shared work and access to documents and information (e.g., data pools) are, to a certain extent, closed networks. That is, certain information cannot be shared amongst users of different groupware products because the protocols setting forth the rules and standards by which communication of data takes place are different. For example, an individual using Microsoft® Outlook® as an e-mail client via a Microsoft® Exchange® Server can exchange e-mail messages with an individual using a Lotus® Notes client via an IBM® Lotus® Domino Server. Those same users cannot, however, access the contact or calendar data of one another due to protocol differences between an Exchange® Server and a Domino Server.

There have been some software applications that have attempted to bridge the protocol gap such as the Trillian instant messaging (IM) client from Cerulean Studios. Trillian is a multi-protocol chat client that supports AOL® Instant Messenger, ICQ®, MSN® Messenger, Yahoo!® Messenger and IRC through a single interface by enabling simultaneous connections to existing instant messaging networks via a direct connection to whatever servers actually power the messaging network. Trillian, however, cannot share most types of corporate or personal data as it is limited to Instant Messaging.

There is a need in the art for a system that allows for the aggregation and access of all types of PIM data in a centralized matter notwithstanding network protocols or other proprietary limitations of particular PIM data resources. Through the aggregation of this data in a centralized manner, the PIM data can then be manipulated or utilized by a particular user or shared amongst a family of users in order to allow for more informed personal and professional relationships. Through the aggregation and sharing of PIM data without regard for protocol and/or proprietary limitations, larger communities may be built between individuals and businesses.

SUMMARY

An exemplary embodiment of the present invention provides for a data aggregation server. The exemplary data aggregation server may aggregate data from a number of users in a community of users. Data may be acquired from these users by a module at the server configured to acquire such data. A mobile device may be coupled to the data aggregation server. Data may be acquired from users that a part of an integrated data environment as well as from users that are outside of that environment. Acquisition of data from outside that environment may include the user of proxied credentials. A mobile device in communication with the server may selectively access the data acquired by the module and maintained in storage, the storage being coupled to the data aggregation server.

A further embodiment of the present invention provides a method of aggregating data. In accordance with this method, a query as to the availability of data sources in an integrated data environment is made; data is acquired from the available data sources in the integrated data environment. A query is also made as to the availability of data sources outside the integrated data environment. In response to a determination of the availability of data sources outside the integrated data environment, proxied credentials are provided to access the available data sources outside the integrated data environment. Data is acquired from the available data sources outside the integrated data environment. Data acquired from the available data source in and outside of the integrated data environment is aggregated at a storage medium coupled to a data management server. The data management server makes the aggregated data accessible to one or more users of the server.

A still further embodiment of the present invention provides a computer-readable storage medium having embodied thereon instructions for causing a computing device to execute a method for aggregating data. The instructions include querying the availability of data sources in an integrated data environment and acquiring data from the available data sources. The instructions further include querying the availability of data sources outside the integrated data environment. In response to a determination of the availability of data sources outside the integrated data environment, proxied credentials are provided to access the available data sources outside the integrated data environment. The instructions further include acquiring data from the available data sources outside the integrated data environment. Data acquired from the available data source in and outside of the integrated data environment is aggregated at a storage medium coupled to a data management server. The data management server makes the aggregated data accessible to one or more users of the server.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of an exemplary communication network architecture comprising a mobile network, a communication management system and a private network.

FIG. 2 is an illustration of an exemplary dynamic data aggregation and management system comprising an exemplary data aggregation server, an exemplary client device and various sources of Personal Information Management (PIM) data.

FIG. 3 is an exemplary data aggregation server providing for aggregation and management of PIM data.

FIG. 4 is an illustration of exemplary networked relationships amongst a variety of sources of PIM data and a data aggregation server.

FIG. 5 illustrates an exemplary data aggregation server's aggregation of PIM data and subsequent population of user profiles.

FIG. 6 illustrates an exemplary methodology for linking PIM data amongst users in a data aggregation and publication network.

FIG. 7 illustrates a linking functionality providing updated PIM data amongst users in a data aggregation and publication network.

FIG. 8 illustrates a linking functionality providing updated PIM data amongst a group of users in a data aggregation and publication network.

DETAILED DESCRIPTIONS

FIG. 1 illustrates an exemplary communication network architecture 100. Communication network architecture 100 comprises a mobile network 105, a communication management system 110 and a private network 115. Communication management system 110 generally manages communications between the mobile network 105 and the private network 115.

A network should generally be understood as a group of associated devices (e.g., computing devices) that are coupled to one another via a communications facility. For example, mobile network 105 is illustrative of an exemplary group of mobile computing devices such as mobile phones, smart phones, PDAs, tablet PCs and WI-FI equipped laptops. Private network 115 is illustrative of an enterprise server and various workstation clients such as those found in any number of corporate entities and businesses. Private network 115 may also be embodied as a single computer (e.g., a home computer) coupled to a series of other computing devices via an Internet connection as provided by an ISP. Mobile network 105, communication management system 110, and private network 115 may also be reflective of a network in that a variety of computing devices are coupled to one another via a variety of communications channels (e.g., mobile telephone base stations, Internet and so forth). In that regard, networks should be interpreted as being inclusive rather than exclusive.

Private network 115 may be separated from the communication management system 110, mobile network 105 and any other networks by a firewall 120. Firewall 120 is traditionally a set of software applications located at a network gateway server (not shown) to protect the resources of the private network 115 (e.g., corporate or private data) from unauthorized users and/or malicious data entities (e.g., viruses and spy-ware) that might exist outside the private network 115. Firewall 120 may also be a security policy used with the aforementioned software application. Firewall 120, in the case of a personal computer (PC), may be software directly implemented on the PC.

The mobile network 105 comprises a variety of mobile devices that may communicate over the Internet through, for example, a wireless or landline mobile network. A variety of mobile networks and communications channels for enabling Internet access are well known in the art.

Private network 115 may be any enterprise network, individual user network, or local computer system that maintains data for one or more users. In an exemplary embodiment, the private network 115 may comprise an enterprise server 125 configured to be accessed by multiple PCs 130. In one example, the enterprise server 125 may be a Microsoft® Exchange®D server and the PCs 130 may access data such as electronic mail (e-mail) on the enterprise server 125 through a client software application (not shown) such as Microsoft® Outlook®. The enterprise server 125 can store e-mail mailboxes, contact lists, calendars, tasks, notes, or any other type of local data or electronic documents (e.g., word processing documents, PowerPoint® presentations, Excel spreadsheets). PCs 130 are coupled to the enterprise server 125 over a Local Area Network (LAN) 135, which is coupled to a Wide Area Network (WAN) 140 such as the Internet.

In some embodiments, PCs 130 may operate independently of enterprise server 125 (e.g., a home personal computer or a business enterprise without an enterprise server 125). PC 130 may comprise or be coupled to memory (not shown) to store e-mail mailboxes, contact lists, calendars, tasks, notes, or any other type of local data or electronic document that might otherwise be stored on enterprise server 125. In these embodiments, a personal client application (not shown) may also provide for communication with a management server 145 or a Personal Client Server (PCS) (not shown) coupled to the management server 145. This latter configuration would be functionally similar to an enterprise client (not shown) at the enterprise server 125 configured to allow communication with the management server 150. The particularities of a given communications architecture implementation are left to the requirements of a user, their particular network and available communications hardware and software. In that regard, the present disclosure's reference to a PCS should not be interpreted as an operational necessity but an alternative embodiment of the present invention.

Communication management system 110 comprises at least one management server 145 configured to manage transactions between mobile devices in the mobile network 105 and the private network 115. A user database 150, which may be coupled to or directly integrated with management server 145, comprises configuration information for different users. For example, the user database 150 may comprise login data for users in the private network 115 and/or mobile network 105.

Communication management system 110 may further comprise one or more Smart Device Servers (SDS) (not shown) and/or one or more of the aforementioned PCS (not shown) in addition to any other specially configured equipment that might be necessary to enable communications between the mobile network 105 and private network 115 in addition to communications with the communication management system 110. Optional SDS (not shown), for example, manages communications with particular smart mobile devices 190 (e.g., smart phones like the Treo 600) whereas an optional PCS (not shown) may manage communications with personal clients (not shown) that may reside on PC 130.

Mobile devices in the mobile network 105 may comprise cellular phones 170 comprising Wireless Application Protocol (WAP) interfaces configured to communicate with management server 145 through a WAP gateway. Other mobile devices may include tablet PCs, PDAs and Internet kiosks 180 or any smart mobile device 190 operating as a communication start/end-point.

Communication channels 160 are any communication pathway that allow the aforementioned mobile devices to communicate between the mobile network 105 with the Internet and/or any other communication network. For example, communication channel 160 may be a landline, cellular channels, 802.11 wireless channels, or satellite channels.

In an independent PC configuration, the personal client application (not shown) installed on the PC 130 establishes a data connection between the PC 130 and management server 145 over the appropriate networks (e.g., LAN 135 and WAN 140) as well as any necessary intermediate hardware or software applications such as an optional PCS (not shown). The data connection between the PC 130 and management server 145, in one embodiment, is initiated by the personal client as an outbound connection, which is then authenticated by the management server 145. For example, the personal client on PC 130 may present authentication information to the management server 145, which the management server 145 may attempt to reconcile with information in the user database 150. A similar connection process occurs in the context of an enterprise server 125 with an enterprise client and a related data connection.

If the management server 145 authenticates the personal client or enterprise client, the data connection is established through firewall 120 (if applicable) with the communication management system 110, which is outside the private network 115. Management server 145, after having established the data connection, may provide connection sharing information or other communication configuration parameters as might be related to an associated mobile device in the mobile network 105.

Management server 145 and the related client at the enterprise server 125 or PC 130 may then enter a quiescent mode until a transaction (e.g., the arrival of data at the server 125 or PC 130) that requires the transfer of data between the private network 115 and mobile network 105 (e.g., pushing of e-mail). In some embodiments, if the data connection is inadvertently terminated, the client at the enterprise server 125 or PC 130 will automatically reestablish a data connection with the management server 145.

The data connection may be maintained even when there is no exchange of data between the management server 145 and mobile network 105 and an associated mobile device. In one embodiment, the data connection is a Transmission Control Protocol/Internet Protocol (TCP/IP) connection although any connection protocol may be used that provides connectivity between the private network 115 and communication management system 110. Alternative embodiments may utilize a proxy server and/or a Secure Socket Layer (SSL) for the purposes of maintaining the security of information transmitted between the private network 115 and communication management system 110.

After establishing the data connection, a mobile data connection may be established between the mobile device in the mobile network 105 and the management server 145. The mobile data connection may, in some embodiments, be established prior to and/or maintained notwithstanding the presence of a data connection between the private network 115 and communication management system 110. For example, a mobile device in mobile network 105 may seek to establish and maintain a connection as soon as a communication channel 160 is available that facilitates establishing that connection. The mobile data connection may be subject to polling (e.g., accessing the communication management system 110 on a regularly scheduled basis); manual synchronization and/or the generation of data at the mobile device or a request for data at the mobile device.

The mobile connection, in some embodiments, may also be initiated by the communication management system as a result of the arrival of data at the enterprise server 125 or PC 130 that needs to be delivered to the mobile device via the communication management system 110 and appropriate communication channel 160 (e.g., arrival of e-mail to be pushed to the mobile device).

After the mobile connection is established, the mobile device 170 may access e-mail and other PIM data at the enterprise server 125 or PC 130 via an enterprise client or personal client, respectively. In some embodiments, the use of an optional SDS (not shown) to establish connectivity between the communication management system 110 and a smart device 190 may be required as may an optional PCS (not shown) for establishing connectivity between communication management system 110 and PC 130.

Mobile device connection, as noted, may be initiated by a mobile device in the mobile network 105. For example, a mobile user's username and password for accessing the communication management system 110 may be established in user database 150 when the user enrolls with the communication management system 110. The user would subsequently be required to provide this information when their mobile device attempts to automatically or manually access the communication management system 110. A username/password combination is not necessarily required to access the management system 110 as other security credentials may be utilized to establish access.

For example, an authentication token may be established on the mobile device following the device's providing of the proper security credentials (e.g., a user name and password). That authentication token may be recognized by the communication management system 110 with regard to establishing future access so that the re-entry of a username and password is not required for subsequent access. The authentication token may be permanent or set to expire after a certain period of time or a certain number of uses. Certificate mapping (using SSL certificates), Host-IP access control (white-listing and black-listing certain IP addresses or networks) and device location may also be used to establish access to the communication management system 110. In the latter example, the position of a device may be established by access to a particular base station (in the case of a cellular device) or a GPS-transceiver may identify the position of the device. If the device is out of a specified region, the communication management system 110 may deny access (e.g., a user designates denial of access if their mobile device is taken overseas or out of state as that location suggests it has been stolen).

Security credentials may also be provided through a combination of various mobile identifiers, for example, Mobile Identification Numbers (MIN), International Mobile Subscriber Identity (IMSI) and Electronic Serial Number (ESN). Additional layers of security may be provided through the use of a secure hash algorithm or a Virtual Private Network (VPN). Notwithstanding the particular access methodology, the credentials are ultimately verified by the management server 145 or some related software/hardware (e.g., optional SDS (not shown)) and possibly with further regard to user information stored in the user database 150.

Similar authentication methodologies may be utilized for establishing a data connection between the communication management system 110 and a computing device in the private network 115.

Once connectivity is established by the mobile device, the user may access e-mail, files or Personal Information Management (PIM) data residing at the enterprise server 125, PC 130 or communication management system 110 at the management server 145.

Management server 145 may be configured to reformat and render local data from the private network 115 according to the particularities of the user's mobile device in addition to functioning as a routing engine for data transactions between the mobile devices of the mobile network 105 and the private network 115.

FIG. 2 is an illustration of a data aggregation and management system 200 comprising an exemplary data aggregation server 210, an exemplary client device 220 and various sources of PIM data including an enterprise server 230 and a PC 240. Various intermediate operations and services 250 are also shown. The intermediate operations and services 250 may be directly integrated as a part of data aggregation server 210, may stand alone as a third-party service accessible by data aggregation server 210 and/or device 220 or be remotely coupled to the data aggregation server 210 (e.g., physically separate from the physical architecture of the data aggregation server 210); for example, a switch or customer service center.

PC 240 may be a desktop PC coupled to the data aggregation server 210 by way of client connection software like SEVEN Personal Edition available from SEVEN Networks, Inc. of Redwood City, Calif. This client connection software may provide a secure link to data stored at the. PC 240 such as e-mail, personal contacts and documents via and other PIM data: A client device 220 such as a smart phone or other mobile device may access this data via the data aggregation server 210 and/or a communications management system like that described in FIG. 1 and any variety of communication networks (e.g., wireless). PC 240 and its client connection software may be configured with certain features such as end-to-end encryption to ensure secure transmission of personal data. PC 240 and its client connection software may also offer notification functionalities to inform a user that new content (e.g., e-mail) has arrived at the PC 240 and should be forwarded to client device 220 via, for example, a push operation through the data aggregation server 210 and/or a communications management system.

Enterprise server 230 may be a corporate enterprise server configured to manage e-mail, data and various applications. Enterprise server 230 (and PC 240) may utilize a firewall (not shown) like that described in FIG. 1. Although a firewall is described, a firewall is not necessary for the operation and interaction of the enterprise server 230 (or PC 240) with data aggregation server 210 and/or client device 220.

Enterprise server 230 is coupled to the data aggregation platform 210 via appropriate client server software, which, like the client software of PC 240, intermediately couples the enterprise server 230 to client device 220 via a data connection to the data aggregation server 210 and/or a communications management system like that described in FIG. 1. An example of such software is SEVEN Server Edition available from SEVEN Networks, Inc. of Redwood City, Calif. Additional software installed at the enterprise server 230 may provide various users (e.g., clients or workstations) the ability to interact with the enterprise server 230 and have access to application data (e.g., email).

Data aggregation server 210 comprises the various modules necessary to aggregate and manage certain PIM data. Data aggregation server 210 may be directly integrated with the management server (145) of FIG. 1 or otherwise coupled to the communication management system (110) described in FIG. 1.

Data aggregation server 210 is optionally coupled to the enterprise server 230 and/or PC 240 via network 260. Network 260 further enables communications access to additional sources of PIM data like those described in FIG. 4 below. Access to an enterprise server 230 or PC 240 by the data aggregation server 210 is not required for the operation of the data aggregation server 210. The data aggregation server 210 may operate independently of an enterprise server 230 and PC 240 so long as certain information required by the data aggregation server 210 and an associated client device 220 is otherwise available (e.g., PIM data such as calendar and/or contact data). Coupling the data aggregation server 210 to PC 240 and/or enterprise server 230 merely provides additional or enhanced functionality that might otherwise be unavailable absent such a coupling.

Similarly, the e-mail redirection and data access functionality offered by connection software at PC 240 and enterprise server 230 may also operate independent of the data aggregation server 210. In an embodiment of the present invention, data aggregation server 210 and PC 240 and/or enterprise server 230 may operate in parallel without ever being ‘aware’ of the operation of the other. Another embodiment of the present invention, however, may integrate certain features of data aggregation server 210 with enterprise server 230 and/or PC 240 to provide for the aforementioned enhanced functionality.

In an embodiment of the present invention, data aggregation server 210 may be operating on and/or integrated with a service provider network (e.g., Cingular Wireless for wireless networking or SBC Communications, Inc. for telecommunications such as digital subscriber lines (DSL)) as is further described in FIG. 4. Through integration or operational contact with a service provider's network, instant access to a community of millions of subscribers (i.e., the service provider's customers) is provided. This integration may also allow for access to additional features such as news, media content, maps and directions as well as e-mail, Short Messaging Service (SMS) and any other value-added features as made available by the service provider. The service provider's network and the data aggregation server 210 may operate independently of or in conjunction with enterprise server architecture 230 and/or PC 240.

As noted above, the data aggregation server 210 may also be integrated with the communication management system (110) and/or management server (145) of FIG. 1. In that regard, data aggregation server 210 may be a part of the management server (145), which may be an operational part of the communications management system (110) of FIG. 1. That communication management system (110) may be a part of the aforementioned service provider network and is further described in FIG. 4.

Data aggregation server 210 may comprise various access controls, gateways and operational modules, which are described in detail in FIG. 3.

Intermediate operations and services 250 may comprise any variety of operations and services deemed necessary and/or desirable by a service provider. In FIG. 2, an SMS Gateway 270, IP/SIP Gateway 280 and Billing and Transaction Service 290 are illustrated. The inclusion of these particular operations and services is not to suggest their presence is a prerequisite for practice of the presently clamed invention.

SMS Gateway 270 may comprise a software and/or hardware utility enabling users to send and receive SMS messages on a GSM or PCS digital cellular network. SMS Gateway 270 may support a number of IP interfaces such as POP3 and SMTP for integration with an e-mail environment as well as HTTP/XML interfaces and SNMP traps for notification of events. SMS Gateway 270 may further support local programming interfaces such as Object Linking and Embedding (OLE), Dynamic Data Exchange (DDE) and Command Line Interface (CLI). SMS gateway 270 may be further coupled to an SMSC (not shown). A Push Gateway may be functionally integrated with SMS Gateway 270 and may further operate proxy applications such as a WAP Gateway for the translation of WAP requests into HTTP requests.

An IP/SIP Gateway 280 may operate in conjunction with an SIP Stack located in client device 220 to integrate the PSTN, which uses the Signaling System 7 protocol to offload PSTN data onto a wireless or broadband network.

Billing and transaction service 290 may be configured and/or utilized for calculating the minutes a user is on a network and/or the amount of bandwidth the user has consumed and how this usage pertains to a service plan and/or billing cycle. Other features that may be utilized by the user of client device 220 and subject to a service fee may be calculated by billing and transaction service 290 such as SMS, roaming and 411.

Client device 220, in an embodiment of the present invention, is a mobile device such as a cellular telephone configured to allow access to the data aggregation server 210 as well as data in enterprise server 230 and/or PC 240. Client device 220 may operate through intermediate operations and services 250 in order to access the data management server 210. Client device 220 may comprise various authentication controls and operational modules that interact with certain modules in the data aggregation server 210, the intermediate operations and service 250 as well as an enterprise server 230 and/or PC 240.

FIG. 3 is an exemplary data aggregation server 300 providing for the aggregation and management PIM data such as personal and professional contact and calendar information. An exemplary use of data aggregation server 300 to acquire and parse PIM data is described in

U.S. patent application Ser. No. 11/217,203 entitled “Universal Data Aggregation,” which has been incorporated herein by reference.

A module, as referenced in the present invention, is a collection of routines that perform various system-level functions and may be dynamically loaded and unloaded by hardware and device drivers as required. The modular software components described herein may also be incorporated as part of a larger software platform or integrated as part of an application specific component.

The modules of the present invention, in one embodiment, actively seek out data. That is, the modules recognize the existence of certain data connections to, for example, PIM data and other informational stores at mobile devices, desktop PCs, enterprise servers and any computing device coupled to the data aggregation server 300. Client software may be utilized at these different data stores to enable the access to information and to provide for certain authorization/access exchanges as are discussed in, for example, the context of access module 310. The data aggregation server 300, via the appropriate module (e.g., presence module 320) and/or modules (e.g., presence module 320 in conjunction with access module 310) will attempt to contact/respond to a client or some other indicia (e.g., an IP address) reflecting the existence of PIM or other informational data and try to acquire/receive the same.

In another embodiment of the present invention, the data aggregation server 300 (via its various modules) may actually attempt to establish a data connection when a connection is not in existence. For example, if an enterprise server closes a TCP/IP connection to preserve bandwidth, the data aggregation server 300 may attempt to (re)establish that data connection in order to acquire certain PIM or other informational data.

In yet another embodiment of the present invention, the aforementioned clients or other software associated with the data aggregation server 300 may attempt to push PIM and other informational data directly to the data aggregation server 300. For example, a desktop PC may be configured with client software allowing for interaction with the data aggregation server 300. The desktop PC client may recognize the existence of certain PIM or other informational data such as calendar and contact information (e.g., through a calendar or e-mail program at the desktop PC). In an embodiment of the present invention, that client may push the PIM and other informational data to the data aggregation server 300.

Limitations may be imposed on the clients with regard to what information may and may not be pushed. For example, certain information may be designated of low importance/privacy and freely pushed to the data aggregation server 300. Other information may be designed of medium importance and require, for example, the authorization of a user before that information is pushed to the data aggregation server 300. Still further information may be designated high priority/importance and never be pushed to the data aggregation server 300 due to privacy and/or security concerns. Similar limitations may be imposed in a pull scenario wherein the various modules of the data aggregation server 300 seek out that information and pull the information from an associated information source such as a desktop PC but subject to any security/privacy limitations that may be imposed by the desktop PC or other host of the PIM or information data. In some embodiments, the data aggregation server 300 may be configured only to request/receive PIM or other information data of certain security levels in order to avoid the centralization of confidential or private data.

In another embodiment of the present invention, a client operating at, for example, a desktop PC may push certain information to a mobile device. That mobile device may then push the same or a portion of that information to the data aggregation server 300. Similarly, that information may be pulled from the mobile device after having been pushed and/or pulled from the desktop PC.

The present invention does not intend to limit the means by which information is acquired (e.g., push or pull), the existence or non-existence of intermediaries (e.g., data pushed from a desktop PC to a mobile device to a data aggregation server 300) or any security policy that may or may not be in place with regard to the aggregation of PIM and other informational data. A single data aggregation server 300 may further utilize various data acquisition methods for different types of data. For example, the data aggregation server 300 may actively seek to acquire location information via a location module 330 (e.g., a pull operation) but may accept the pushing of data as it pertains to calendar and/or contacts data. In other embodiments, a data aggregation server 300 may send a request to various PIM and information stores for data. The actual delivery of that data, however, may be the result of a client device or other information host pushing the data in response to the data aggregation server 300 request (e.g., a client response to the server invitation).

The modules of the present invention, in addition to aggregating information, may also manage the data. That is, the modules may analyze certain data in order to generate further data as is discussed in the context of, for example, a location module 330 and presence module 320, below. The various modules of the present invention may further execute certain calls and commands as they pertain to storage and retrieval of aggregated data, which may be stored locally, in a Storage Area Network (SAN), at a remote location or in any other medium or apparatus suitable for storage of data and accessing the same. Management and/or storage of data may also be executed by other modules of the data aggregation server 300 that are not presently shown.

Access module 310 comprises or is otherwise coupled to the software, routines, hardware and/or driver devices necessary to control who and what has access to the data aggregation server 300 and the PIM data and other information aggregated and managed by the data aggregation server 300. Access module 310 may be configured to grant or deny access based on, for example, who is making the access request (e.g., a particular user), where the request is coming from (e.g., location as may be determined by a base station or GPS), when the request is occurring (e.g., time of day), what is making the request (e.g., a mobile device) and how the connection is being made (e.g., SSL).

Access module 310 may utilize a user name/password combination to authenticate a user requesting access. A list of users and/or groups with access to the data aggregation server 300 may be created and stored in an LDAP database controlled by LDAP module 370. This database of groups and users may be installed locally or a reside at a remote machine, a SAN or any other device/medium at any location so long as it is suited for the maintenance and access of user access data.

Access module 310 may further utilize SSL authentication whereby a user's identity is confirmed by a security certificate. If the certificate is from a trusted authority, then the certificate is mapped to a user's entry in a certificate mapping file. If the certificate maps correctly, access is granted subject to specific rules set for that particular user (e.g., access control lists and access control entries). If the certificate is not from a trusted authority or fails to map properly, authentication fails and access is denied.

Access module 310 may utilize other access control methodologies such as Host-IP access control wherein access is limited or denied to specific clients as specified by hostnames or IP addresses of allowed or blacklisted clients. Wildcard patterns may be used to control access as it pertains to, for example, entire networks.

Access module 310 may further interoperate with presence module 320, location module 330, calendar module 340, groups module 350 and/or contacts module 360 to allow for acquisition of PIM data and other information from multiple sources including desktop PCs, Internet Service Providers, web portals and work directories as is illustrated in FIG. 4 below.

Presence module 320 comprises or is otherwise coupled to the software, routines, hardware and/or driver devices necessary to identify the availability of various subscribers or users of the data aggregation server 300. That is, presence module 320 helps identify who is presently available and through which particular contact methodology they may be contacted.

For example, through application awareness (e.g., via a calendar or through calendar module 340), presence module 320 may determine that a user is presently in a meeting and therefore unavailable (i.e., not present). Alternatively, presence module 320 may, as a result of a manual setting by a user communicatively coupled to the data aggregation server 300 (e.g., a data connection from a desktop PC), determine that a user is available only through a particular contact methodology and display that information as is appropriate (e.g., available—present—via phone and e-mail).

A second user connected to the data aggregation server 300 via, for example, a mobile device may—as a result of information aggregated and made available by presence module 340—ascertain the present unavailability of a first user in their office (i.e., their presence PIM reflects they are out of the office) and, instead, contact that user on their cellular phone where their presence is currently and affirmatively identified.

Various types of presence may be reflected by the presence module 320. Instant messaging, e-mail, home phone, office phone, cellular phone, SMS, pager and any other form of communication device capable of reflecting availability or unavailability are within the scope of the type of presence information aggregated and managed by presence module 320.

Location module 330 comprises or is otherwise coupled to the software, routines, hardware and/or driver devices necessary to identify the physical location of a subscriber or user of the data aggregation server 300. Location module 330 may be utilized in the context of a GPS-enabled mobile device although such functionality is not necessary for the practice of the present invention.

For example, location module 330 may determine that a particular user is presently working at their computer in their office as a result of querying information managed by the presence module 320. Through other modules or applications (e.g., an address book), location module 330 may determine that the user's work address is located at 901 Marshall Street, Redwood City, Calif. In this way, the location module 330 may make intelligent determinations of data even though certain information may not be directly provided to or aggregated by the module. In this way, information can also be generated or aggregated without the requirement of the aforementioned GPS functionality.

Location module 330, through integration with a third-party system or built-in features present or coupled to the data aggregation platform 300 for example, may also aggregate information to be utilized in the context of location information. For example, the location module 330 may aggregate the necessary data to provide text or visual directions to a particular user as it relates to aggregated location information.

‘Location module 330 may be further configured to make direct queries of users as to their location or to analyze information as provided by cellular base stations as to general locations of users.

Calendar module 340 comprises or is otherwise coupled to the software, routines, hardware and/or driver devices necessary to aggregate calendar and scheduling information of subscribers or users of the data aggregation server 300 and any metadata that may be associated with the same.

Calendar module 340 may seek to aggregate calendar information from a variety of sources of a particular user, for example a mobile device or handheld calendar and a calendar integrated with a desktop PC or enterprise server. The aggregation of calendar data by the calendar module 340 may aid in providing on-the-go synchronization of calendar information. As calendar information constantly changes and provides the greatest possibility for conflict (i.e., two disparate events at two different data stores for the same time period), an embodiment of the present invention continually aggregates calendar information for ‘as soon as possible’ availability and/or manipulation via calendar module 140.

The aggregation of calendar data may be provided as part of a specific request to view that information. For example, a user may seek to access calendar information at a desktop PC via their mobile device. That calendar information may be aggregated by the calendar module 340 in addition to being conveyed to the client via a pull operation to the data aggregation server 300 and a subsequent push to the mobile device client. In another embodiment, the calendar information may be pulled from the desktop PC or enterprise server all the way to the mobile device client with a copy of the calendar data being cached by the calendar module 340 as it passes through the data aggregation server 300, which may be integrated a communication management system like that described in U.S. patent application Ser. No. 11/217,203.

Similarly, calendar data generated at a mobile device may be aggregated by the calendar module 340 via a pull command at the data aggregation server 300 or via a command issued by a desktop PC. Calendar data may also be pushed directly to the calendar module 340 as a result of certain behavior at the mobile client (e.g., the entry of new calendar information followed by a synchronization operation or a regularly scheduled aggregation operation by the data aggregation server 300). In this way, changes in calendar data that truly occur on-the-go may be aggregated for subsequent synchronization and/or distribution as is appropriate.

Calendar module 340 may further interoperate with presence module 320 to help provide indicia of presence. For example, a presence indicator may normally be manually set by a user (e.g., ‘I am Available’ or ‘I am Not Available’). In the event that a user fails to provide such a manual setting and the user is unavailable, the user's presence setting may be misleading thereby resulting in other users attempting to contact the user but to no avail thereby defeating one of the purposes of a presence indicator. When the calendar module 340 operates in conjunction with the presence module 320, certain calendar information as aggregated by the calendar module 340 may aid in generating a more accurate indicator of presence as provided by presence module 320. For example, the occurrence of a meeting in a calendar would indicate that a user is unavailable. The presence module 320 may then adjust in light of this aggregated calendar data and make an appropriate reflection of the same. When the meeting ends, presence indicators may be readjusted as is appropriate.

Like all of the PIM data aggregated by the present invention, certain information may be allocated a different degree of privacy or importance. For example, different meetings may be of different importance—that is, the meeting may be of critical importance (e.g., a major merger or acquisition) or of lesser importance (e.g., a company presentation on the new credit union membership). Based on metadata embedded in the calendar data (e.g., ‘must attend’ or ‘important’), additional data is acquired by the calendar module 340; which may then be shared through data distribution or utilized by other modules of the present invention.

Metadata embedded in the calendar data and recognized by the calendar module 340 may also be utilized to reflect additional information not necessarily expressly provided by that calendar data (e.g., in a subject description). For example, calendar module 340, through data aggregation, may determine that while a meeting does not begin until 2.00 PM, because of a ‘travel required’ metadata indicator, any sharing of this calendar information would reflect that an attempt to schedule a meeting with that user during their ‘travel time’ would be ill advised despite the fact that the calendar might otherwise reflect availability. In some embodiments, metadata reflecting the need to travel and information relating to the address of the meeting (as expressly provided by the calendar entry or as may be obtained through other applications or aggregated information), may allow for the utilization of mapping technologies to provide a more accurate indicator of the exact travel time required and, as a result, more accurate information to be distributed by the data aggregation server 300.

Numerous metadata indicators may be available to be embedded in calendar data and acquired by the data aggregation server 300 via the calendar module 340, for example: none, important, business, personal, vacation, must attend, travel required, needs preparation, birthday, anniversary, phone call, free, tentative, busy, out of office. Additionally, in an embodiment, a user may be able to generate his or her own personalized metadata and provide associate rules with regard to the same.

The calendar module 340 of the present invention, in an embodiment, may aggregate information from both personal and professional calendars. The calendar module 340 of the present invention may further aggregate information pertaining to the k availability of conference rooms or conferencing equipment. The calendar module 340 may manage aggregated calendar data and take into account time zone differences in calendar data as may later be distributed to users of the data aggregation server 300. For example, the calendar module 340 may make determinations that 1.00 PM calendar information for a user in California translates into different information when accessed by a user in the United Kingdom. Calendar module 340 may further interoperate with the presence module 320 to make determinations of locations and automatically make the appropriate time zone calculations and/or adjustments when aggregating and/or distributing information.

Groups module 350 comprises or is otherwise coupled to the software, routines, hardware and/or driver devices necessary to form groupings of different users or subscribers of the data aggregation server 300. Groups information acquired and generated by the groups module 350 may be explicit like a ListServ; for example, add user A to group X. Groups may also be implicit and generated as the result of intelligent determinations made by the groups module 350.

For example, the groups module 350 may determine that users A, E and G are all employed by Big Co. and will create (if the group does not already exist) and/or add users A, E and G to the Big Co. group list. The groups module 350 may further determine that users B, C and D are all graduates of State University and create and/or add them to the State University group list. The groups module 150 may further determine that users F, H and I are all members of Professional Organization and create and/or add them to the Professional Organizations list. Furthermore, the groups module 350 may determine that users J, K and L are all Family Members and add them to the Family Members list.

Users may be members of more than one group as generated by the groups module 350. For example, user J could be could be a Family Member and also an alumnus of State University thereby warranting their presence of both the Family Members and State University List. Users may be members of only one group. Users may not belong to any group.

Groups may be identified and/or generated as a result of acquiring data from various sources. For example, a Global Address List (GAL) may represent a comprehensive list of e-mail addresses, fax and telephone numbers, and mail stops for the employees and contractors for a particular company. In addition to being a raw source of contact data, the GAL could in and of itself be the basis for generation of a group (e.g., Company Group).

Contact data aggregated by a contacts module 360 may be categorized and grouped by the groups module 350, may be manually entered (e.g., input by a user) or obtained through a synchronization operation. In any of these instances, the groups module 350 is configured to aggregate the new information and group it properly.

As noted, contact data as aggregated by the contacts module 360 may be implemented by the groups module 350. For example, if the groups module 350 determines that it has incomplete data for a member of a group or a contract entry in general, the groups module 350 may actively seek that member/user's absent information through, for example, accessing a GAL or even an LDAP database comprising user information or another operation in conjunction with the contacts module 360. Providing absent information or updating out-of-date information may also be accomplished through linking to other user PIM data as is further described in the present disclosure.

Contacts module 360 comprises or is otherwise coupled to the software, routines, hardware and/or driver devices necessary to aggregate contact information from different sources of contact data. While the most common sources of contact PIM data are address books or contacts lists, the contacts module 360 may aggregate data through intelligent operations wherein elements of contact information are identified and more complete information is aggregated for the purpose of generating a more accurate and complete contact profile.

For example, the contacts module 360 may determine that User A contacted the present subscriber via a telephone call but the name and e-mail address of User A is not available—only their phone number. The contacts module 360 would then seek that absent information from various sources such as local directories, username/password stores, the Internet, contact lists of other users, corporate personnel directories or any other sources of information that might link the phone number to more identifying information for use in a contacts profile. Similar queries could be made based on received and sent e-mails or any other indicia of contact or interaction by the user (e.g., SMS and instant message).

The contacts module 360 may further query other information networks and/or data aggregation servers (e.g., a platform embedded in the network of a separate service provider but with whom the present service provider has an informational sharing agreement) to determine the identity of User A. The contacts module 360 could also directly query the user for the missing information through, for example, an SMS message requesting the information be entered at the mobile device or a desktop PC.

Contact information may also be acquired from various other applications. For example, and as noted above, the receipt of an otherwise unknown phone number can begin the acquisition of contact information such as name, physical address and other identifying contact information (e.g., company, title, etc.). Information may also be obtained from e-mail headers whereby a domain name (e.g., @company.com) may be traced to a particular company or from the body of an e-mail through an e-mail signature or footer. Similarly, instant messages—as a form of contact—may be utilized to generate a profile or parts thereof. Outgoing phone calls, e-mails and SMS messages can be used in a similar fashion.

Calendar data may also be used to acquire contact information as it pertains to, for example, a corporate/work address (e.g., 10 AM meeting at SEVEN Networks, Inc. at 901 Marshall Street, Redwood City, Calif. 94063) of a particular person. Based on that calendar data, the contacts module 360 may determine that the 10 AM with Person X was at Person X's place of employment: SEVEN Networks, Inc. and generate appropriate contact information and profile data concerning employer and business address. In this way, the employment and address information of Person X can be populated without an express input of that information into a particular user/contact profile having ever been made. Similarly, anniversaries, birthdays and other repeating and/or important dates may be associated with particular contacts.

Contact information—and other PIM data for that matter—may be obtained from other profiles of users of the data aggregation server 300 subject to privacy and security profiles. For example, User A may have a complete profile indicating name, phone number, address, employment and e-mail information. User B's profile may only designate employment information, specifically, the name of their employer. The contacts module 360 of the data aggregation server 300 may, by matching the employment information of Users A and B through a linking operation, populate other fields in User B's profile. For example, User B's profile with regard to a general phone and fax number as well as corporate address can be populated as User B works for the same company as User A, that same information being fully present in the contact information/data profile for User A.

It is envisioned that in some embodiments of the present invention, various Internet spiders or web scraping technologies may be utilized by the contacts module 360 to further acquire presently unavailable information. In such an embodiment, a web scraping module (not shown) could further identify a particular contact/user profile and search various websites for information and news pertaining to that person. If it is determined, during spidering, that this particular person has changed jobs, been promoted or been subject to some other event of news-worthy importance, the contacts module 360 may update certain contacts information/profile data.

LDAP module 370 is a TCP/IP software protocol enabling users to locate organizations, individuals and other resources in an open or proprietary network (e.g., look-up queries). LDAP module 370 makes it possible for almost any application running on virtually any platform to obtain directory information, service data and public keys. LDAP module 370 may be based on the X.500 open standard whereby applications need not worry about the type or location of servers hosting the queried directories. LDAP module 370 may further identify user privileges on a network.

Voice gateway 380 terminates PSTN traffic from callers. Voice gateway 380 may comprise an automated speech recognition engine (not shown) to perform speech recognition; a dual tone multi-frequency (DTMF) module (not shown) for recognition of key tones; and audio playback and record components (not shown). Voice gateway 380 may further comprise a Voice Extensible Markup Language (VXML) interpreter (sometimes referred to as a voice interpreter) (not shown) for interpreting VXML markup, playing synthesized speech and/or listening for user responses in the instance of automated speech recognition.

Other modules may be introduced to the data aggregation server 300 so long as they do not interfere with the aggregation and management of PIM data from various sources such as an enterprise server or PC or those other sources as exemplified in FIG. 4 below.

FIG. 4 is an illustration of exemplary networked relationships 400 amongst a variety of sources of PIM data (430-480) and a data aggregation server 410 as may be found in the present invention.

Data aggregation server 410 is an aggregation server like that described in FIG. 3 and as may be integrated with or otherwise communicatively coupled to a service provider's communications network 420 (e.g., Cingular Wireless or SBC Communications). The data aggregation server 410 is coupled to various sources of PIM data such as PCs 430, enterprise servers 440, mobile phones 450, instant messaging networks 460, ISPs 470 or other information sources such as PDAs or Smartphones 480.

While FIG. 4 reflects direct connections between the data aggregation server 410 (via the service provider's communications network 420) and these various sources of PIM data 430-480, this is not suggest the requirement or existence of a point-to-point or direct connection. For example, mobile phone 450 will be connected to the data aggregation server 410 through not only the service provider's communications network 420 but also a variety of base stations and other intermediate communications networks (not shown). Similarly, a computer network as provided by PC 430 or enterprise server 440 will comprise a series of routers between the source of information (e.g., the PC 430) and the data aggregation server 410. Similarly, an Internet portal 470 like Yahoo!® or an IM network 460 like that offered by America Online™ will comprise a series of gateways, servers and/or other intermediate software and/or hardware before becoming communicatively coupled with the local and wide area networks that will further couple the Internet portal 470 or IM network 460 to the data aggregation server 410 via the service provider's communications network 420.

PC 430 may be any type of home computing device; for example, a desktop computer or a laptop computer. PC 430 may be coupled to data aggregation server 410 via an ISP such as SBC Communications, which provides DSL service or a dial-up service provider such as America Online™. The present invention envisions the use of a variety of communication channels for communicating between a PIM data source and the data aggregation server 410, for example, the aforementioned DSL and dial-up services as well as satellite and wireless communications. Other communication mediums may be utilized as well, such as Bluetooth or InfraRed. No limitation as to the use of a particular communication medium is meant to be imposed by the present invention nor is there meant to be the requirement of a homogeneous communication link between the PIM data source and the data aggregation server 410 (e.g., there need not be—nor will there usually be—a single DSL link all the way between PC 430 and the actual data aggregation server 410).

PC 430 may be equipped with connection software allowing for the establishment of a data connection between the PC 430 and a communications management system like that described in U.S. patent application Ser. No. 11/217,203 whereby data may be synchronized with an associated mobile device (e.g., mobile device 450). Such a data connection may allow for the redirection of, for example, e-mail and mobile access to PIM data residing in a memory store at the PC 430.

Enterprise server 440 shares similarities to PC 430 with the exception that the enterprise server 440's architecture is more complex with regard to the introduction of not only the server but often a series of additional application servers, data stores and work stations that may resemble (or be the same as) a computing device like PC 430. Enterprise server 440 may be exemplified as a Microsoft® Exchange Server or a Lotus® Domino Server from IBM to manage the receipt, storage, delivery and access to e-mail as well as other application and PIM data. An enterprise server generally serves a larger group of users via a server-client relationship whereas a single PC (e.g., a home computer) generally serves an individual user. Enterprise server 440 may also comprise a software connector allowing for redirection and access to e-mail and other corporate data to an associated mobile device (e.g., mobile device 450) via a communications management system like that described in U.S. patent application Ser. No. 11/217,203.

Mobile device 450 may be a cellular device allowing for Internet or other data access whereby a data connection with a communications management system and/or data aggregation server 410 may be established. In an exemplary embodiment of the present invention, the network architecture and service provider's communications network 420 of a mobile service provider may be directly integrated with the data aggregation server 410 of the present invention. Data aggregation server 410 may also be integrated with other network operators (e.g., shared by a plurality of service providers) or communicatively coupled to another service provider communications network 420 comprising its own data aggregation server 410 (e.g., a data aggregation server in the Cingular Wireless network may be coupled to a data aggregation server in a Sprint PCS network).

IM network 460 provides the necessary functionality (e.g., hardware and software) to allow for real-time, text-based conferencing over the Internet or another communications network between two or more people. Many IM providers now offer the integration of still-images, avatars, audio clips and, in some instances, video clips as a part of the IM experience. IM network 460 may also provide a series of contact lists or ‘buddy lists’ that function as a source of contact information (i.e., PIM data) utilized by the data aggregation server 410 and, more specifically, a groups module as described in FIG. 1. An example of an IM network service provider is America Online™. America Online™ provides instant messaging not only to America Online™ dial-up service subscribers but also as an independent application that may be downloaded and installed on a desktop computer (e.g., PC 430) or, as is increasingly common, a mobile device (e.g., mobile device 450).

Internet portal 470 may be a single point for the access of information over the Internet, specifically, the World Wide Web. Yahoo!® is an example of an Internet portal 470 that provides a comprehensive single point of access for, conceivably, any information the average individual would need from the World Wide Web; for example, a search engine, maps, news, weather, e-mail, calendaring, various other forms of PIM data and so forth. Consistent with being a single offering, Internet portal 470 may offer a variety of other services including instant messaging (e.g., Yahoo!® Messenger) or even Internet access (e.g., Yahoo!®/SBC® DSL). By logging on with a user ID and password, Internet portal 470 may also allow for the generation and customization of personal pages wherein the user can request the delivery of and direct the layout of particular information, including PIM data.

For example, a particular user may want headline news pertaining only to the San Francisco area but also desires weather reports in Sunnyvale, Calif., and San Francisco, Calif., as the user might live in one location and commute to the other for work. Similarly, the user may be a transplant from the East Coast and still actively follow sports teams on the East Coast. As such, the user may further organize their personal page to display sports scores concerning the Boston Bruins hockey team and the Boston Red Sox baseball team instead of information concerning the San Jose Sharks and San Francisco Giants, which might otherwise be logically be displayed in the context of news and weather for the San Francisco region.

As noted, certain of this information may be utilized in the context of identifying and generating PIM data aggregated by the data aggregation platform 410. For example, a personal calendar displayed on the user's personal page; an address book linked to the user's personal page and so on.

PDA 480 may be a portable device offering, for example, notepad and calendar/scheduling functionality. PDA 480 may have certain network functionality to allow for data exchanges with other PDAs or compatible devices as well as a larger communications network enabling synchronization with a home or work computer where a companion calendaring program may be installed. Many PDA functionalities have been incorporated into the likes of mobile device 450 or smart phones.

The various aggregation modules of the data aggregation server 410 may acquire data from these various information sources of PIM data through integration with a particular data source. For example, the data aggregation server 410 may be integrated or configured to access and operate with an instant messaging network 460 like that offered by America Online™. That is, America Online™ and a service provider implementing the data aggregation server 410 (e.g., as a part of a data aggregation and publication service) may reach an agreement allowing access of the data aggregation server 410 to the instant messaging network 460 thereby providing near unfettered access and certain sharing of information between the two systems as a result of systematic design. Once the data aggregation server 410 is implemented/integrated with, for example, the instant messaging network 460, data aggregation may commence unabated as the data aggregation server 410 operates as if it is a normal operating presence in the network.

The various aggregation modules of the data aggregation server 410 may also act as a proxy with the proper user credentials to access a particular information network. For example, the data aggregation server 410 may be provided by certain user name and password information to access an Internet portal 470 like Yahoo!®. That is, a user of the services offered by the data aggregation server 410 would provide their user name and password to the data aggregation server 410, most likely during a registration or subsequent account update procedure with a data aggregation and publication service. Thus, any time the data aggregation server 410 seeks to access the Yahoo!® Internet portal 470 to acquire information from, for example, an online/webpage calendar, the user's username and password will be provided to the Yahoo!® Internet portal 470 just as if the user were sitting in front of a keyboard and display and manually entering the information. Once access is granted to the Internet portal 470, aggregation of information may commence.

In some instances, various authentication tokens or cookies might be granted by various PIM data sources either as the result of a request to access certain PIM data or as a result of a correct username/password combination. Various security methodologies as discussed in the context of, for example, access module 310 (above) may also be applicable with regard to establishing credentialed relationships between the data aggregation platform 410 and various sources of PIM data.

It some instances, it is perceived that a combination of data aggregation methodologies may be necessary. For example, username and password for certain PIM data sources and system integration for others.

The data aggregation server 410 also provides for the aggregation of data from amongst different users of the service. For example, one user may provide his various user names and passwords in order to access certain PIM information stored in that particular users different PIM sources such as an instant messaging network 460 or an Internet portal 470. But aggregating one user's information does not help to create a network of information. In order to build a larger informational community, access to other user's PIM data is required. But while an instant messaging network 460 may allow the data aggregation server 410 access based on system integration or username/password combinations (either directly or by proxy), any secure system will be unlikely to allow a first user to access a second user's information without some sort of permission.

While that permission may be explicitly granted by another user (e.g., User B grants User A to access their information at instant messaging network 460), such an arrangement is unlikely because of security and privacy concerns of both the instant messaging network 460 and the user. For example, a user may have no qualms about granting another user information about certain information on an instant messaging contacts list (e.g., professional colleagues with whom both users interact in the office) but will likely be hesitant to share information concerning family members or other personal relationships. Control of who receives what information can cause the implementation of an entire new layer of security or management software that the instant messaging network 460 may be hesitant to implement because of costs or other concerns.

Such a concern is the fact that most instant messaging network (like America Online™) are not in the business of providing an open network. That is, these services provide an instant messaging service to individual users and subscribers and it is up to those individual users to determine who knows who is on their contacts list; that is, America Online™ will not provide that information to other users. While data representative of that information may be stored by the instant messaging service that service will likely make every effort to keep that list secure and private from all other users. The service provider offering means to share or network this contact or other PIM data is unlikely due to, at the least, privacy and business/commercial relations in the marketplace.

The present data aggregation server 410 overcomes this hesitancy of different PIM data sources to openly share information. For example, User A and User B are both members/users of a data aggregation and publication service offered through the data aggregation server 410. User A may provide certain security information to the data aggregation server 410 in order to access the aforementioned instant messaging network 460. In this way, User A can aggregate PIM data from his instant messaging network account (e.g., members of his contacts lists, those members instant messaging IDs and so forth). User B will have provided certain security information to the data aggregation server 410 to allow the collection of PIM data in his account.

While an instant messaging network 460 may not be obliged to provide a system for sharing PIM data amongst its users, the present data aggregation server 410 does provide such interactions. User A will set up certain permissions with the data aggregation server 410 to allow User B to access User A's PIM data. User B will provide similar permissions such that User A may access User B PIM data. The permissions system of the data aggregation server 410 also allows for setting of limitation on who may access what information. Therefore, User A may allow for User B to access his contacts information—but not his calendar information. Similarly, User B may allow User A access to his calendar information but not his presence information. Permissions may be assigned to individuals via, for example, contacts module 160 or to groups of individuals as may be determined by the groups module 150. In one embodiment of the present invention, a permissions module (not shown) may govern these relationships. In another embodiment, such permissions may be governed by the access module 110.

Sub-permission levels may also be set in the data aggregation server 410. For example, User A may be able to access User B's calendar information—but only particular aspects of his calendar information as may be governed by, for example, metadata. Similar limitations may be set with regard to other PIM data (e.g., access only to personal contacts and not professional contacts).

The shared PIM data (via permissions) of the data aggregation server 410 enables the creation of a growing network of contacts and relationships through, for example, linking. For example, User A may know User B; User B, in turn, may know User C. As a result of this single-degree of separation and the establishment of a link, User A may now have access to User C's contact information. Additional permissions may be set with regard to how many degrees of separation information is shared (e.g., only with persons on my contact list or with persons on the contact lists of persons on my contact list).

Additional permissions may be imposed with regard to aggregating data to complete incomplete data records. For example, User A may have an entry for John Doe but no phone number for John Doe. User B, however, may know John Doe as well and have a complete data entry (e.g., name, phone, address, birthday, etc.). Permission settings may be established wherein the data aggregation server 410, on behalf of User A, accesses the data of User B via a linking operation to gather the remainder of this contact information (e.g., phone number). While User A may now have a complete data record for John Doe, he may be entirely unaware of the source of that information. That is, User A may now know that information was aggregated from PIM data of User B or that John Doe is on User B's contacts list.

Access to various PIM data of other users by the data aggregation server 410 occurs as a result of the operation and interaction of various modules within the data aggregation server 410.

In this way, certain protocol limitations may also be overcome in that it is not necessary for User A, who might be a Yahoo!® user, to directly communicate with an America Online system for the purposes of acquiring information about User B. User B, instead, directly interacts with the America Online system and then User B shares that information with User A in a common protocol.

Notwithstanding the protocol particularities of certain networks or PIM data sources, the present invention may, in an embodiment, utilize whatever protocol is necessary to communicate with that network/PIM data source in a way that the particular network/PIM data source will understand communications from the various modules of the data aggregation server 410. For example, the present invention would communicate with the Yahoo!® Internet Portal with regard to e-mail using IMAP. The present invention would communicate with a Microsoft® Exchange® Server using MAPI and so on. Distribution of data, too, may require the use of multiple protocols. For example, TCP/IP for a standard data connection to, for example, a desktop computer but use of WAP for communicating with a wireless device. In that regard, the present invention may be multi-protocol based.

FIG. 5 illustrates the aggregation of PIM data and subsequent population of user profiles by an exemplary data aggregation server 500. Data aggregation server 500 is like that described in FIGS. 3 and 4 (300 and 410, respectively). User A (510) enrolls with a data aggregation and publication service as may be provided by a network service provider such as Cingular Wireless (cellular) or SBC Communications (DSL). The data aggregation and publication service need not be provided by a network service provider but may be a service or feature offered by an independent third-party for integration with the service provider's network. User A310, in the present example, is the user of a Smartphone such as the Treo 600. User A 510 possesses certain (User A) PIM Data 520 such as names, phone numbers and e-mail addresses. User B (330) also enrolls with the data aggregation and publication service. User B 530, in the present example, is the user of a cellular device with contact management and e-mail functionality such as a Sprint MM-5600. User B 530 also possesses certain (User B) PIM Data 540.

When a user, like Users A and B (via devices 510 and 530), enroll with the data aggregation and publication service, a profile for each user is created. This profile includes certain PIM data such as e-mail addresses, phone numbers, names, addresses and so on. This profile may be stored at the data aggregation server 500 or in any storage device or system otherwise accessible by the data aggregation server 500.

During the creation of User A's Profile 550 with the data aggregation and publication service via the data aggregation server 500, relevant User A PIM Data 520 is copied into the User A Profile 550. Relevant PIM data to be copied to a profile can be a global copy routine wherein all contact information in a device is copied or only certain portions of PIM data (e.g., names and e-mail addresses) or only certain categories of PIM data (e.g., business contacts or personal contacts) or, further, PIM data meeting certain security levels. Various other identifiers of what constitutes PIM data may be sent by the user or may be determined independently by the data aggregation server 500 as this information is acquired. Acquisition of this information may occur as the result of a push operation wherein the PIM data is pushed from the device to the data aggregation server 500 or the data aggregation server 500 pulls the information from a device. The transfer of this information may occur over any variety of communications networks, for example, wireless networks or landline networks (e.g., phone lines or DSL).

User A Profile 550, as illustrated in FIG. 5, was created, in part, as the result of copying User A PIM Data 520 from User A's Smartphone 510. In User A Profile 550, the names and e-mail addresses of three users are displayed: User B with an e-mail address of <User@aol.com>; User C with an e-mail address of <User@msn.com>; and User D with an e-mail address of <User@isp.com>.

FIG. 5 also illustrates User B Profile 560 wherein certain PIM data is displayed. User B Profile 560 was created, in part, as the result of copying User B PIM Data 540 from User B's cellular device 530. In User B Profile 560, the names and e-mail addresses of three users are displayed: User A with an e-mail address of <User@xyz.com>; User F with an e-mail address of <User@abc.com>; and User G with an e-mail address of <User@isp.net>.

A server configured with the necessary data aggregation and publication software allows the server to operate as data aggregation server 500. The data aggregation server 500 amongst its plurality of users—including User A and User B—recognizes and correlates or matches user profiles like User A Profile 550 or User B Profile 560. A ‘match’ or correlation of user profiles by the data aggregation server 500 may include recognizing a correlation amongst different PIM data entries. For example, the data aggregation server 500 may recognize matches of names, e-mail addresses, phone numbers, business contact information or any other category of data amongst two or more users. For example, the data aggregation server 500 recognizes that User A's Profile 550 identifies the name and e-mail address of User B who also happens to be a user of the data aggregation and publication service. In that regard, the data aggregation server 500 also recognizes that User B's Profile 560 identifies the name and e-mail address of User A who is also a user of the data aggregation and publication service.

Recognition and correlation/matching of user profiles need not be bi-directional. That is, User A does not need to identify User B in User A's Profile 550 and User B does not need to identify User A in User B's Profile 560 in order to identify and generate a match. It may be sufficient for the data aggregation server 500, with regard to User A and only User A, to identify, User B who is listed in User A's Profile 550. The data aggregation server 500, in this example, need only recognize that User B is a user of the data aggregation and publication service and that User B is identified in User A's Profile 550 in order to generate a match. That is, the generation of a match may be unidirectional.

Once identifying a match, the data aggregation server 500 may undertake a number of different operations. A first option is for the data aggregation server 500 to automatically create a link between User A and User B. By creating this link, User A's Profile 550 is populated with User B PIM Data 540 from User B's Profile 560 and vice-versa: User B's Profile 560 is populated with User A PIM Data 520 from User A's Profile 550. The result is a more detailed and diverse user profile for User A as reflected in Updated User A Profile 570. A similar result occurs in the case of User B wherein User B's Profile 560 is populated with User A's PIM data 520 to result in Updated User B Profile 580.

As can be seen in Updated User A Profile 570, the contact data has expanded from the original listings of Users B, C and D and now includes Users F and G and their corresponding e-mail address information. Users F and G were initially identified in User B PIM Data 540 and User B Profile 560 but are now listed as a part of the Updated User A Profile 570. Similarly, User B's Profile 560 has now expanded from the original listing of Users A, F and G to now include User A PIM Data 520, which includes Users C and D and their related contact information. This newly introduced PIM data is reflected in Updated User B Profile 580.

The data aggregation server 500 may, instead of automatically creating the link, request permission to create a link. The request for permission may be to either of the users in the aforementioned User A and User B scenario. For example, the data aggregation server 500 may query User A whether it is acceptable to create the link with User B and vice versa.

The creation of the link may also be limited with regard to the direction of linked data. For example, User A may be queried as to whether a link with User B is permitted. If a link is acceptable, the flow of PIM data may be limited only to outgoing data, that is, User A PIM Data 520 may be provided to User B but User B PIM Data 540 may not be provided to User A. In this scenario, User B would ultimately have an Updated User B Profile 580 that includes PIM data from User A but User A would retain only their original profile (350) in that no new PIM data is introduced. This may be desirable if a user has a device that is shared by others or does not use secure communication channels and the user wishes to limit the amount of potentially sensitive PIM data that may reside on their device. This may also be desirable if the user wishes to keep a ‘streamlined’ contacts application with only critical contact information and not the plethora of contact entries that might exist in User B PIM Data 540. In some embodiments, it may be desirable to limit incoming PIM data to only certain forms of PIM data such as business contacts, personal contacts and so forth.

Various other security limitations may be implemented to allow the sharing of PIM data but to retain certain confidential entries. For example, a user might designate certain entries as confidential and prevent them from being shared with other users. A user might also categorize certain entries as confidential through their placement in certain organizational folders, the folders being categorized as confidential. A user may also designate certain elements of PIM data as confidential. For example, a user may allow the free exchange of names and company affiliations in the case of business entries but prevent the sharing and dissemination of phone numbers and e-mail addresses.

In the event a user who receives this updated—but otherwise incomplete—PIM data wishes to have access to the entirety of the PIM data (e.g., the e-mail address that accompanies a particular name), the receiving user may make a request to the originating user through a specially generated e-mail by an application unique to the data aggregation and publication service and via the data aggregation server 500 or an SMS communication in a similar fashion to provide that information. The originating user may accept or deny the request with the information being provided or withheld as is appropriate. Traditional e-mail and SMS communications may also be used wherein the originating user may then attach the requested PIM data file in a reply. In other embodiments, it is possible that the entire PIM data file may be provided to a user but that particular portions of the file (e.g., private information such as phone numbers) are encrypted. Instead of a receiving user requesting the encrypted information, they may instead request an encryption key wherein the encrypted information is unlocked and made available. This unlocking of information may be with regard to particular entries, groups of files or an entire library of PIM data received from an originating user. These encryption keys may be provided directly by the originating user or may be stored at the data aggregation server 500 and the location or means of access to these keys made available to the requesting user at the election of the originating user.

Other security implementations include degrees of trust amongst different users. For example, an originating user may designate certain users as highly trusted and therefore having access to all available PIM data or certain classes of PIM data. Other users may be designated as moderately trusted users. These users would have access to certain portions of PIM data or certain groups of files but not the same degree of access as offered to highly trusted users. Other users may be designated as low trusted users with even lesser degrees of PIM data while still other users may be designated as no trust users. These users would be required to make a request for all degrees of PIM data on a case-by-case basis. Degrees of trust can be applied against PIM data as a whole or certain classes of PIM data (e.g., business PIM data or personal PIM data). Different classes of trust may also be established by an originating user wherein certain groups of persons (e.g., family members, office colleagues or ‘college buddies’) are granted access to certain degrees, classes or portions of PIM data.

Security may be managed locally at a client device or centrally via the data aggregation server 500 or a resident or coupled security module or application. PIM data, in one embodiment, is pushed through the data aggregation server 500 as PIM data is updated. The updated PIM data is then distributed to various recipients in accordance with various permissions. In other embodiments, the PIM data may be pulled from various clients in response to a request from another user for updated PIM data. For example, a user may request PIM data in response to knowing that updated PIM data exists (e.g., User B has moved to a new town and has a new phone number; User A will then request that new PIM data with the knowledge that User B will likely have updated their personal contact information in a device hosting PIM data). In still other embodiments, PIM data may be stored at the data aggregation sever 500 or in a storage device or system coupled to and otherwise accessible by the data aggregation server 500. Storage of certain portions of PIM data for the purposes of identifying matches or for undertaking certain intelligent determinations, as has been described in co-pending U.S. patent application Ser. No. 11/217,203, which has been incorporated herein by reference, may also occur.

PIM data may also be stored in personal accounts associated with the data aggregation server 500. For example, a first user may push their updated PIM data to the data aggregation server 500 for distribution to authorized recipients. A second user, however, may not want data pushed to their device due to any variety of factors, for example, limitations on bandwidth usage that may be imposed by a service provider or traveling outside a home service area wherein roaming charges are in effect. In this instance, the receiving user may instruct the data aggregation server 500 to ‘hold’ any new data in their account associated with the data aggregation server 500. Once the user re-enters a ‘home’ service area or limitations on bandwidth consumption are no longer a concern, the user may then pull that information from the account associated with the data aggregation server 500. Delivery of PIM data may also be subject to a regular polling of the data aggregation server 500 (e.g., poll for new available PIM data every 6 hours or every 2-days) as may be set by the user or automatically imposed by a service provider. Checking for new PIM data may also occur during the course of another transaction (e.g., while pushing newly generated PIM data to the data aggregation server 500, newly available PIM data is pulled or during the course of the push or pull of e-mail or other data, like calendar data).

FIG. 6 illustrates an exemplary methodology 600 for linking PIM data amongst users in a data aggregating and publication network. In step 610, a first user (User A) provides certain PIM data to the data aggregation server 500. In step 620, a second user (User B) provides PIM data to the data aggregation server 500. While FIG. 6 only illustrates a first and second user, the methodology is generally the same for any number of users.

In step 630, the data aggregation server 500 identifies a match or correlation in PIM data. For example, User A is identified as an entry in User B's PIM data and/or vice versa. Other possible correlations may be identified such as common employment, family members and so forth. Specific correlations may be identified by a user for subsequent identification by the data aggregation server 500 (e.g., identify all users in a certain zip code). Once a correlation/match has been identified in step 630, the data aggregation server 500 provides a link in step 640. As has been noted, the link may occur automatically or may be subject to the data aggregation server 500 querying whether to make/accept the link in addition a number of other security limitations. Subject to these limitations and/or acceptance of the link being established, the link is established and the PIM data is populated to various profiles as is appropriate in step 650.

In an alternative embodiment (step 660), instead of the data aggregation server 500 identifying a correlation in the PIM data, a user of the data aggregation and publication service offered by the data aggregation server 500 may specifically request the acquisition and distribution of PIM data. For example, one user may be aware that a second user has recently updated their PIM data or PIM data otherwise in their possession. That user may specifically request the updated PIM data be populated into their PIM data profiles. The link is then established in step 640 and the data populated in step 650.

In yet another embodiment (step 670), PIM data is pushed to targeted recipients. For example, a user of a data aggregation and publication service may wish for family members to have immediate access to updated PIM data following a move to a new job in a new city. In this embodiment, the provider of the updated PIM data may seek to directly link with desired recipients of the data so that their PIM data profiles are updated in a timely manner. The direct link may be subject to the aforementioned acceptance and security protocols as discussed in the context of other embodiments.

FIG. 7 illustrates the linking functionality of an embodiment of the present invention wherein updated PIM data is provided amongst users of a data aggregation and publication service. User A's device 710 is coupled to a data aggregation server 700 that offers data aggregation and publication functionality. User A's device 710, in the present embodiment, is providing Updated PIM Data 720 to the data aggregation server 700. More specifically, the Old Personal PIM Data Profile 750 of User A's device 710 is being replaced by Updated Personal PIM Data Profile 760 to reflect the introduction of Updated PIM Data 720.

User B's device 730 also subscribes to the data aggregation and publication service offered by data aggregation server 700. As the result of a link having been established between User A and User B (e.g., by specific request as in step 660 of FIG. 6; through the identification of matching PIM data in step 640 of FIG. 6; or through targeted linking as in step 670 of FIG. 6), User B will have access to Received Updated PIM Data 740 via the data aggregation server 700. As a result of the link, User B will not have to manually update a contact profile for User A as the data aggregation server 700 automatically updates User B's profiles and provides an Updated Contact Profile 770 that reflects Updated PIM Data 720 provided by User A and subsequently received by User B as Received Updated PIM Data 740. Updating of profiles in this manner can be subject to any number of security limitations as well as timing limitations (e.g., pushing Updated PIM Data 720 to an account by User A, that data subsequently pulled from the account by User B) as have been previously described in the present disclosure.

FIG. 8 illustrates a linking functionality providing updated PIM data amongst a group of users of a data aggregation and publication service. User A 810 provides Updated PIM Data 820 to the data aggregation server 800 similar to that described in FIG. 7. The embodiment depicted in FIG. 8, however, introduces a Group Profile 830. In the present example, Group Profile 830 happens to be a list of college buddies. Group Profile 830 can encompass any combination of users: work colleagues, family members, members of a fan club or enthusiast group, friends from college, neighbors and so on. A Group Profile 830 is often established by, or in conjunction with, a groups module like that discussed in the context of FIG. 1 (150). While a Group Profile 830 may have a common theme that ties all the members of the group together (e.g., they are all family members or they all went to college together), the profile can also be a conglomerate listing of identities with no commonalties (e.g., all users in a contacts listing).

Group Profile 830 often serves as a simple means for contacting all persons of that particular group at once. For example, instead of a user manually entering three separate e-mail addresses for Users B, C and D when User A wishes to send all of his ‘college buddies’ an e-mail message, User A, via device 810, will instead send an e-mail message to an entry designated as ‘College Buddies’ wherein an e-mail client in his communications device will extract the relevant e-mail addresses for Users B, C and D from a contacts list and then send the e-mail to Users B, C and D. Similar advantages exist with regard to SMS communications or providing access to or delivering content such as still image, video and audio files in addition to blog entries and other forms of content and data.

Group Profile 830 may also be used as a simple means as quickly reviewing contact information for particular persons. For example, User B's contact information may encompass a long list of contact entries. Instead of scrolling through those numerous entries, User A may instead access the Group Profile 830 for his ‘college buddies’ and quickly access the specific contact information for User B.

Returning to FIG. 8, User A may provide Updated PIM Data 820 as was mentioned in reference to FIG. 5. User A's updating of this PIM data will cause User A's Old Personal PIM Data Profile 840 to become updated and as is reflected in Updated Personal PIM Data Profile 850. This Updated Personal PIM Data Profile 850 is received by the data aggregation server 800 and subsequently distributed as Received Updated PIM Data 860. Distribution may occur as described in FIG. 6 (e.g., by specific request as in step 660; through the identification of matching PIM data in step 640; or through targeted linking as in step 670). Additionally, distribution and/or linking may occur via Group Profile 830. In this way, in a targeted link (step 670 of FIG. 6), User A 810 may provide his Updated PIM Data 820 and target its delivery to the members of Group Profile 830. In this way, an Updated Contact Profile 870 for User A will be generated for all the Group Members of the Group Profile 830 ‘college buddies.

In the same way that Group Members’ devices 880 each receive an Updated Contact Profile 870 for User A, a similar methodology may be utilized to introduce new members to a Group Profile 830. For example, if User E (not shown) is added to Group Profile 830, he could receive not only the Updated Contact Profile 870 for User A but also immediately receive all authorized PIM Data related to members of the Group Profile 830. User E could have no PIM data relating to User A, B, C or D when enrolling with the data aggregation and publication service but immediately upon being linked (either automatically, by request or by invitation) to Group Profile 830, he could receive all PIM Data relevant to Users A, B, C and D and, dependent upon certain security settings, all the PIM Data possessed by Users A, B, C and D. That is, upon enrollment and linking, User E's PIM Data of other users could change from zero entries to every entry otherwise possessed by Users A, B, C and D.

The establishment of links may also be used to update PIM data that is incomplete amongst various users as was mentioned in the course of FIG. 3. For example, one user may have incomplete PIM data for a particular person (e.g., name and address but no phone number). Through the establishment of a link with another user, the user with an incomplete entry may obtain the missing phone number from the second user who has a more complete entry. This link may be by request or automated as was discussed in the context of FIG. 6.

While the present invention has been described in connection with a series of preferred embodiments, these descriptions are not intended to limit the scope of the invention to the particular forms set forth herein. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. In that regard, the Applicants specifically note that the distribution and sharing of PIM data may also encompass other forms of data, including calendar data, to do list data, notepad data or any other data traditionally associated with a PDA in addition to particularized content such as photos (e.g., JPEG files), blog entries, video (e.g., MPEG files) or audio (e.g., MP3s). Linking may also provide other features available only for linked users that expand beyond PIM data updates; for example, sending and receipt of voice messages, instant messaging and blog access. 

What is claimed is:
 1. A data aggregation system comprising: a data aggregation server configured to aggregate data from a plurality of users in a community of users. 